home *** CD-ROM | disk | FTP | other *** search
- program init;
- {$V-} {$C-}
-
- {*****************************}
- {Copyright (c) 1986 Wayne Bell}
- {*****************************}
-
-
- CONST strlen=160;
- recv_buf_size=2048;
-
- TYPE str=string[strlen];
- restrictions=(rlogon,rchat,rvalidate,rbackspace,ramsg,rpostan,
- rpost,remail,rvoting,rmsg);
- acrq='@'..'G';
- newtyp=(rp,lt,rm);
- deflts=(spcsr,onekey,wordwrap,pause);
- pnr=record name:string[40]; number:string[14]; hs:boolean; end;
- anontyp=(no,yes,forced,dearabby);
- ansttype=(postn,emailn,pana,sanm,cosysop,lcosysop);
- opts=(alert,smw,nomail);
- slr=record
- ttime:byte;
- mallowed:integer;
- emails,posts:byte;
- anst:set of ansttype;
- end;
- messages=record
- ltr:char;
- number:integer;
- ext:byte;
- end;
- smalrec=record
- name:string[25];
- number:integer;
- end;
- userrec=record
- name:string[25];
- realname:string[14];
- deleted:boolean;
- pw:string[8];
- ph:string[12];
- waiting:byte;
- laston:string[10];
- loggedon:integer;
- msgpost:integer;
- emailsent:integer;
- feedback:integer;
- linelen:byte;
- pagelen:byte;
- defaults:set of deflts;
- ontoday:byte;
- illegal:byte;
- cursor:string[10];
- sl:byte;
- ac:set of restrictions;
- ar:set of acrq;
- qscan:array[1..19] of messages;
- qscn:array[1..19] of boolean;
- macro:array[1..2] of string[79];
- comptype:byte;
- option:set of opts;
- vote:array[1..9] of byte;
- sbn:byte;
- dsl:byte;
- uploads,downloads:integer;
- uk,dk:integer;
- end;
- boardrec=record
- name:string[25];
- filename:string[12];
- sl:byte;
- maxmsgs:byte;
- pw:string[10];
- anonymous:anontyp;
- ar:acrq;
- key:char;
- end;
- msgstat=(validated,unvalidated,deleted);
- messagerec=record
- title:string[30];
- messagestat:msgstat;
- message:messages;
- owner:integer;
- date:integer;
- mage:byte;
- end;
- systatrec=record
- boardpw:string[8];
- sysoppw:string[8];
- hmsg:messages;
- users:integer;
- lastdate:string[8];
- callernum:integer;
- activetoday:integer;
- callstoday:integer;
- msgposttoday:integer;
- emailtoday:integer;
- fbacktoday:integer;
- uptoday:integer;
- closedsystem:boolean;
- end;
- mailrec=record
- title:string[30];
- from,destin:integer;
- msg:messages;
- date:integer;
- mage:byte;
- end;
- gft=record
- num:integer;
- title:string[40];
- filen:string[12];
- end;
- smr=record
- msg:str;
- destin:integer;
- end;
- vdatar=record
- question:string[79];
- numa:integer;
- answ:array[0..9] of record
- ans:string[25];
- numres:integer;
- end;
- end;
- ulrec=record
- name:string[25];
- filename:string[12];
- password:string[10];
- dsl:byte;
- maxfiles:integer;
- end;
-
- var sf:file of smalrec;
- uf:file of userrec;
- bf:file of boardrec;
- mf:file of messagerec;
- mailfile:file of mailrec;
- slf,slf1:file of slr;
- seclev:array[0..255] of slr;
- systatf:file of systatrec;
- systat:systatrec;
- sr:smalrec;
- buf,emailtitle,spd,irt,lastname,ll,cursor,i:str;
- thisuser,user:userrec;
- boards:boardrec;
- fw,extramsgs,buf_start,buf_end,mread,board,numboards,t,usernum:integer;
- pap,lil,realsl,ftoday,ptoday,etoday:integer;
- c,ID:char;
- hungup,useron,next,chatcall,expert,doneday,echo,hangup,incom,outcom:boolean;
- extratime,timeon:real;
- ch,quit:boolean;
- recv_buffer:array[1..recv_buf_size] of byte;
- smf:file of smr;
- macok,lan:boolean;
- x:file of str;
- vdata:file of vdatar;
- vd:vdatar;
- ulf:file of ulrec;
- fx:ulrec;
- fi:text;
- ns:pnr; fil:file of pnr;
-
- function exist(fn:str):boolean;
- var f:file;
- begin
- assign(f,fn);
- {$I-} reset(f); {$I+}
- exist:=(ioresult=0);
- close(f);
- end;
-
- procedure move(s:str);
- var s1,i:str; f,f1:text;
- begin
- if not exist(s) then writeln('"',s,'" isn''t here.') else begin
- writeln(' Moving '+s);
- assign(f,s); s1:='gfiles\'+s; assign(f1,s1);
- reset(f); rewrite(f1);
- while not eof(f) do begin
- readln(f,i); writeln(f1,i);
- end;
- close(f1); close(f);
- erase(f);
- end;
- end;
-
- procedure make(s:str);
- var f:text;
- begin
- if not exist('gfiles\'+s) then begin
- writeln(' Creating: ',s);
- assign(f,'gfiles\'+s);
- rewrite(f);
- writeln(f,'This is "'+s+'"');
- close(f);
- end;
- end;
-
- procedure make1(s:str);
- var f:text;
- begin
- if not exist('gfiles\'+s) then begin
- writeln(' Creating: ',s);
- assign(f,'gfiles\'+s);
- rewrite(f);
- writeln(f);
- close(f);
- end;
- end;
-
- begin
- clrscr;
- if exist('gfiles\user.lst') then writeln('Already installed') else begin
- writeln('WWIV v3.10 Initialization Program.');
- writeln('Now beginning initialization.');
- writeln(' Creating directories..');
- mkdir('gfiles'); mkdir('msgs'); mkdir('dloads');
- writeln(' Creating user files..');
- assign(uf,'gfiles\user.lst'); assign(sf,'gfiles\names.lst');
- assign(systatf,'gfiles\status');
- rewrite(uf); write(uf,user);close(uf); rewrite(sf);
- sr.number:=0; sr.name:='';
- write(sf,sr);write(sf,sr);close(sf); rewrite(systatf);
- with systat do begin boardpw:=''; sysoppw:='SYSOP';
- hmsg.number:=-32767; hmsg.ltr:='A'; hmsg.ext:=1; users:=0;
- lastdate:=''; callernum:=0; activetoday:=0; callstoday:=0; msgposttoday:=0;
- emailtoday:=0; fbacktoday:=0; uptoday:=0; closedsystem:=false;
- end;
- write(systatf,systat); close(systatf);
- make('WELCOME.MSG');
- make('LOGON.MSG');
- make('LOGOFF.MSG');
- make('SYSTEM.MSG');
- make('NEWUSER.MSG');
- make1('USER.LOG');
- make1('SYSOP.LOG');
- make1('YSYSOP.LOG');
- make1('BBSLIST.MSG');
- make1('NONEWUSR.MSG');
- writeln(' Creating board files..');
- assign(bf,'gfiles\boards.dat');
- with boards do begin
- name:='General';
- filename:='board1';
- sl:=10;
- maxmsgs:=50;
- pw:='';
- anonymous:=no;
- ar:='@';
- key:=' ';
- end;
- rewrite(bf); write(bf,boards); close(bf);
- assign(ulf,'gfiles\uploads.dat'); rewrite(ulf);
- fx.name:='Sysop'; fx.dsl:=100; fx.filename:='ubsysop'; fx.maxfiles:=50; fx.password:='';
- write(ulf,fx);
- fx.name:='Miscellaneous'; fx.dsl:=0; fx.filename:='ub1'; fx.maxfiles:=50; fx.password:='';
- write(ulf,fx);
- close(ulf);
- assign(x,'gfiles\laston.fil'); rewrite(x);
- i:='';
- for t:=1 to 8 do write(x,i);
- close(x);
- assign(vdata,'gfiles\voting.dat');
- rewrite(vdata);
- vd.question:='<< NO QUESTION >>'; vd.numa:=0;
- for t:=1 to 9 do write(vdata,vd);
- close(vdata);
- assign(mailfile,'gfiles\email.dat');
- rewrite(mailfile);
- close(mailfile);
- assign(fi,'gfiles\trashcan.txt');
- rewrite(fi); i:='FUCK'; writeln(fi,i); i:='SID VICIOUS'; writeln(fi,i);
- i:='SYSOP'; writeln(fi,i); i:='JEFF THE RIPPER'; writeln(fi,i);
- close(fi);
- move('mainmenu.msg'); move('sysopmnu.msg');
- move('dlmenu.msg'); move('dosmnu.msg'); move('help.msg');
- if not exist('seclev.dat') then writeln('"seclev.dat" is missing.') else begin
- writeln(' Moving seclev.dat');
- assign(slf,'seclev.dat'); assign(slf1,'gfiles\seclev.dat');
- reset(slf); rewrite(slf1);
- for fw:=0 to 255 do begin read(slf,seclev[fw]); write(slf1,seclev[fw]); end;
- close(slf1);
- close(slf);
- erase(slf);
- end;
- assign(fil,'gfiles\numbers.trm');
- {$I-} reset(fil); {$I+}
- if ioresult<>0 then begin
- rewrite(fil);
- ns.name:='========================================';
- ns.number:='- --- --- ----';
- ns.hs:=true;
- for fw:=1 to 9 do write(fil,ns);
- end; close(fil);
- writeln('WWIV v3.10 initialization complete.');
- writeln; writeln;
- writeln('Thank you for using WWIV software. A $25 donation is requested for using');
- writeln('this software. Please address any correspondences to:');
- writeln;
- writeln(' Wayne Bell');
- writeln(' Box 636');
- writeln(' 904 Silver Spur Road');
- writeln(' Rolling Hills Estates, CA 90274');
- end;
- end.
-